#pragma once
#include <SFML/Graphics/RenderWindow.hpp>
#include <nice2d/application.h>
#include <nice2d/scene.h>

#define DECLARE_MAIN_FUNCTION_WITH_SCENE(width,height,title,scene)\
    int main()\
    {\
        auto window = std::make_shared<sf::RenderWindow>(sf::VideoMode(width,height),title,sf::Style::Close);\
        window->setVerticalSyncEnabled(true);\
        auto app = Application::getInstance();\
        app->installComponents();\
        app->setBackgroundColor(sf::Color::Black);\
        app->setWindow(window);\
        auto object = std::make_shared<scene>();\
        object->initial();\
        app->execute(object);\
        return 0;\
    }
